package DataStructure.tree.BST;

public class Test {
    public static void main(String[] args) {
        BinarySearchTree<Integer> bst = new BinarySearchTree<>();
        /////////////////
        //      5      //
        //    /   \    //
        //   3     6   //
        //  / \     \  //
        // 2  4      8 //
        /////////////////
        int nums[] = {5, 3, 6, 8, 4, 2};
        for (int i : nums) {
            bst.add(i);
        }
        bst.removeMin();

        System.out.println("前序递归遍历 :");
        bst.preOrder();
        System.out.println();
        System.out.println("前序非递归遍历 :");
        bst.preOrderNR();
        System.out.println();
        System.out.println("中序递归遍历 :");
        bst.inOrder();
        System.out.println();
        System.out.println("后序递归遍历 :");
        bst.postOrder();
//        System.out.println();
//        System.out.println("广度优先遍历 :");
//        bst.levelOrder();
//        System.out.println();
//        System.out.println("最小值 : " + bst.minnum());
//        System.out.println("最大值 : " + bst.maxnum());
//        bst.removeMin();
//        System.out.println("删除最小值 : ");
//        bst.inOrder();
//        bst.removeMax();
//        System.out.println();
//        System.out.println("删除最大值 :");
//        bst.inOrder();
//        System.out.println();
//        System.out.println("删除元素5 : ");
//        bst.remove(5);
//        bst.levelOrder();
    }
}
